﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyNhanVien.BusinessLogicLayer;
using QuanLyNhanVien.DataAccessLayer;

namespace QuanLyNhanVien.PresentationLayer
{
    public partial class NhapPhongBan : UserControl
    {
        PhongBanCTL pbCTL;
        PhongBanDTO PhongBanHienTai;

        public NhapPhongBan()
        {
            InitializeComponent();
        }

        public void HienThiDanhSachPhongBan()
        {
            List<PhongBanDTO> dt = pbCTL.getDsPhongBan();
            dgv_PhongBan.DataSource = dt;
            textBox_MAPHG.Text = "";
            textBox_NG_NhanChuc.Text = "";
            textBox_TenPHG.Text = "";
            textBox_TRPHG.Text = "";
        }


        private void NhapPhongBan_Load(object sender, EventArgs e)
        {
            pbCTL = new PhongBanCTL();
            PhongBanHienTai = new PhongBanDTO();
            HienThiDanhSachPhongBan();
        }


        private void button_Them_Click(object sender, EventArgs e)
        {
            try
            {
                pbCTL.PhongBan.MAPHG = textBox_MAPHG.Text;
                pbCTL.PhongBan.TenPHG = textBox_TenPHG.Text;
                pbCTL.PhongBan.NG_NhanChuc = textBox_NG_NhanChuc.Text;
                pbCTL.PhongBan.TRPHG = textBox_TRPHG.Text;
            }
            catch (Exception ex)
            {
                return;
            }

            bool ketqua = pbCTL.insert();
            HienThiDanhSachPhongBan();

            if (ketqua)
                MessageBox.Show("Thêm Phòng ban thành công.", "Thông báo");
            else
                MessageBox.Show("Thêm Phòng ban thất bại.", "Thông báo");
        }

        private void dgv_DanhSachPhongBan_SelectionChanged(object sender, EventArgs e)
        {
            if (dgv_PhongBan.SelectedRows.Count > 0)
            {
                PhongBanHienTai.MAPHG = (string)dgv_PhongBan.SelectedRows[0].Cells[0].Value;
                PhongBanHienTai.TenPHG = (string)dgv_PhongBan.SelectedRows[0].Cells[1].Value;
                PhongBanHienTai.TRPHG = (string)dgv_PhongBan.SelectedRows[0].Cells[2].Value;
                PhongBanHienTai.NG_NhanChuc = (string)dgv_PhongBan.SelectedRows[0].Cells[3].Value;

                textBox_MAPHG.Text = PhongBanHienTai.MAPHG;
                textBox_TenPHG.Text = PhongBanHienTai.TenPHG;
                textBox_TRPHG.Text = PhongBanHienTai.TRPHG;
                textBox_NG_NhanChuc.Text = PhongBanHienTai.NG_NhanChuc;
            }
        }

        private void button_Xoa_Click(object sender, EventArgs e)
        {
            if (textBox_MAPHG.Text == "")
                return;
            pbCTL.PhongBan.MAPHG = textBox_MAPHG.Text;

            bool ketqua = pbCTL.delete();

            if (ketqua)
            {
                MessageBox.Show("Xóa Phòng ban thành công", "Thông báo");
                HienThiDanhSachPhongBan();
            }
            else
                MessageBox.Show("Xóa Phòng ban thất bại", "Thông báo");
        }

        private void button_Sua_Click(object sender, EventArgs e)
        {
            try
            {
                string maPHG = (string)dgv_PhongBan.SelectedRows[0].Cells[0].Value;

                if (maPHG != textBox_MAPHG.Text)
                {
                    MessageBox.Show("Không thể thay đổi Mã phòng.", "Thông báo");
                    return;
                }

                pbCTL.PhongBan.MAPHG = textBox_MAPHG.Text;
                pbCTL.PhongBan.TenPHG = textBox_TenPHG.Text;
                pbCTL.PhongBan.TRPHG = textBox_TRPHG.Text;
                pbCTL.PhongBan.NG_NhanChuc =textBox_NG_NhanChuc.Text;
            }
            catch (Exception ex)
            {
                return;
            }

            bool ketqua = pbCTL.update();

            if (ketqua)
            {
                MessageBox.Show("Sửa Phòng ban thành công", "Thông báo");
                HienThiDanhSachPhongBan();
            }
            else
                MessageBox.Show("Sửa Phòng ban thất bại", "Thông báo");

        }

        private void button_Thoat_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void button_refresh_Click(object sender, EventArgs e)
        {
            HienThiDanhSachPhongBan();
        }

        private void button_Export_Click(object sender, EventArgs e)
        {
            PhongBanCTL pbCTL;
            pbCTL = new PhongBanCTL();
            List<PhongBanDTO> listPB = pbCTL.getDsPhongBan();

            DataTable dt = new DataTable();
            dt = Helper.ListToDataTable<PhongBanDTO>(listPB);

            Helper.ExportDataTableToExcel(dt, null);
        }

    }
}
